package com.yserp.project.erp.basic.carriers.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yserp.common.constant.Constants;
import com.yserp.common.utils.mybatis.MybatisPlusUtil;
import com.yserp.common.utils.text.Convert;
import com.yserp.project.erp.basic.carriers.domain.BasisCarriers;
import com.yserp.project.erp.basic.carriers.mapper.BasisCarriersMapper;
import com.yserp.project.erp.basic.carriers.service.IBasisCarriersService;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.Arrays;
import java.util.List;

/**
 * 承运商管理Service业务层处理
 *
 * @author yserp
 * @date 2022-07-11
 */
@Service
public class BasisCarriersServiceImpl extends ServiceImpl<BasisCarriersMapper,BasisCarriers> implements IBasisCarriersService {
    @Resource
    private BasisCarriersMapper basisCarriersMapper;

    /**
     * 查询承运商管理
     *
     * @param id 承运商管理主键
     * @return 承运商管理
     */
    @Override
    public BasisCarriers selectBasisCarriersById(Long id) {
        return basisCarriersMapper.selectById(id);
    }

    /**
     * 查询承运商管理列表
     *
     * @param basisCarriers 承运商管理
     * @return 承运商管理
     */
    @Override
    public List<BasisCarriers> selectBasisCarriersList(BasisCarriers basisCarriers) {
        QueryWrapper<BasisCarriers> queryWrapper = new QueryWrapper<>();
        MybatisPlusUtil.notNullField(basisCarriers,queryWrapper);
        return basisCarriersMapper.selectList(queryWrapper);
    }

    /**
     * 新增承运商管理
     *
     * @param basisCarriers 承运商管理
     * @return 结果
     */
    @Override
    public int insertBasisCarriers(BasisCarriers basisCarriers) {
        return basisCarriersMapper.insert(basisCarriers);
    }

    /**
     * 修改承运商管理
     *
     * @param basisCarriers 承运商管理
     * @return 结果
     */
    @Override
    public int updateBasisCarriers(BasisCarriers basisCarriers) {
        return basisCarriersMapper.updateById(basisCarriers);
    }

    /**
     * 批量删除承运商管理
     *
     * @param ids 需要删除的承运商管理主键
     * @return 结果
     */
    @Override
    public int deleteBasisCarriersByIds(String ids) {
        return basisCarriersMapper.deleteBatchIds(Arrays.asList(Convert.toLongArray(ids)));
    }


    @Override
    public String checkCarriersCodeUnique(String carriersCode) {
        String flag = Constants.NAME_UNIQUE;
        int count = basisCarriersMapper.selectCount(new QueryWrapper<BasisCarriers>().eq("carriers_code",carriersCode));
        if (count > 0) {
            flag = Constants.NAME_NOT_UNIQUE;
        }
        return flag;
    }
}
